const ProductCategory = require('../entity/product/productcategory');

// 删除对应关系(删除商品时候)
async function deleteProductCategory (productId) {
    const productCategoryEntity = new ProductCategory();
    const productCategoryModel = productCategoryEntity.getModel();
    await productCategoryModel.remove({ productId: ProductCategory.toObjectId(productId) });
    return 1;
}

// 添加对应关系
async function InsertProductCategory (areaId, productId, categoryList) {
    const productCategoryEntity = new ProductCategory();
    const productCategoryModel = productCategoryEntity.getModel();
    await Promise.all(categoryList.map((item) => productCategoryModel.create({
        areaId: ProductCategory.toObjectId(areaId),
        mainCategoryId: ProductCategory.toObjectId(item.mainCategoryId),
        mainCategoryName: item.mainCategoryName,
        subCategoryId: ProductCategory.toObjectId(item.subCategoryId),
        subCategoryName: item.subCategoryName,
        productId: ProductCategory.toObjectId(productId)
    })));
    return 1;
}

// 编辑商品删除
/**
 * 编辑商品删除分类对应关系
 * @param contactListId <Array> 对应关系ID数组
 * @returns {Promise<number>}
 * @constructor
 */
async function ProductCategoryContact (contactListId) {
    const productCategoryEntity = new ProductCategory();
    const productCategoryModel = productCategoryEntity.getModel();
    await Promise.all(contactListId.map((contactId) => productCategoryModel.findByIdAndDelete(contactId)));
    return 1;
}
module.exports = {
    deleteProductCategory,
    InsertProductCategory,
    ProductCategoryContact
};
